package com.zhongwang.business.module.estimateBudgetAccountingManage.dao;

import com.zhongwang.business.gen.entity.*;
import com.zhongwang.business.module.estimateBudgetAccountingManage.model.*;
import com.zhongwang.business.module.estimateBudgetAccountingManage.model.excelExport.CostSheet;
import com.zhongwang.business.module.estimateBudgetAccountingManage.model.excelImport.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

/**
 * @exception: AccountingInfoDao
 *  核算清单明细页持久层
 * @author 徐一贺
 * @date 2020/10/8 9:18
 * @version 1.0
      */
@Repository
public interface AccountingInfoDao {

    /**
     *  getAbBudgetAccountingTaskByPrimaryKey
     *  依据主键获取单据表信息
     * @param batId 单据表主键
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingTask 单据表信息
     * @author 徐一贺
     * @date 2020/10/8 9:20
     * @version 1.0
          */
    BusBudgetAccountingTask  getAbBudgetAccountingTaskByPrimaryKey(Integer batId);

    /**
     *  getBusBudgetAccountingCostByPrimaryKey
     *  依据主键获取对应成本项
     * @param id 主键
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost 成本项
     * @author 徐一贺
     * @date 2020/10/8 14:16
     * @version 1.0
          */
    BusBudgetAccountingCost getBusBudgetAccountingCostByPrimaryKey(Integer id);

    /**
     *  getBusBudgetAccountingBasicInfoConfigByPrimaryKeyAndCode
     *  根据单据表主键和代码获取对应的参数
     * @param batId 单据表主键
     * @param code 项目号
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingBasicInfoConfig 概算预算核算基本配置信息
     * @author 徐一贺
     * @date 2020/10/8 14:46
     * @version 1.0
          */
    BusBudgetAccountingBasicInfoConfig getBusBudgetAccountingBasicInfoConfigByPrimaryKeyAndCode(@Param("batId") Integer batId,@Param("code")  String code);

    /**
     *  findRawMaterialList
     *  根据条件获取原材料列表
     * @param param 检索条件
     * @return [BusMaterialData] 结果类型
     * @author 徐一贺
     * @date 2020/10/9 10:41
     * @version 1.0
          */
    List<BusMaterialData> findRawMaterialList(BusMaterialData param);
    /**
     *  findPurList
     *  获取外购件列表
     * @param param 条件
     * @return java.util.List<com.zhongwang.business.gen.entity.BusMaterialData>
     * @author 徐一贺
     * @date 2020/11/3 10:52
     * @version 1.0
     */
    List<BusMaterialData> findPurList(BusMaterialData param);
    /**
     *  findWholeOutList
     *  获取整体外协列表
     * @param param 条件
     * @return java.util.List<com.zhongwang.business.gen.entity.BusMaterialData>
     * @author 徐一贺
     * @date 2020/11/3 10:52
     * @version 1.0
     */
    List<BusMaterialDataModel> findWholeOutList(BusMaterialDataModel param);
    /**
     *  findWithMatOutList
     *  获取带料外协列表
     * @param param 条件
     * @return java.util.List<com.zhongwang.business.gen.entity.BusMaterialData>
     * @author 徐一贺
     * @date 2020/11/3 10:52
     * @version 1.0
     */
    List<BusMaterialDataModel> findWithMatOutList(BusMaterialDataModel param);
    /**
     *  getRawMateriaTotalAmount
     *  获取总金额
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getRawMateriaTotalAmount(BusBudgetAccountingCost param);
    /**
     *  getRawMateriaTotalNum
     *  获取总数量
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getRawMateriaTotalNum(BusBudgetAccountingCost param);
    /**
     *  getPurTotalAmount
     *  外购件获取总金额
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getPurTotalAmount(BusBudgetAccountingCost param);
    /**
     *  getPurTotalNum
     *  外购件获取总数量
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getPurTotalNum(BusBudgetAccountingCost param);

    /**
     *  getWholeOutTotalAmount
     *  整体外协获取总金额
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getWholeOutTotalAmount(BusBudgetAccountingCost param);
    /**
     *  getWholeOutTotalNum
     *  整体外协获取总数量
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getWholeOutTotalNum(BusBudgetAccountingCost param);
    /**
     *  getPurTotalAmount
     *  带料外协获取总金额
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getWithMatOutTotalAmount(BusBudgetAccountingCost param);
    /**
     *  getWithMatOutTotalNum
     *  带料外协获取总数量
     * @param param 条件
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:10
     * @version 1.0
          */
    BigDecimal getWithMatOutTotalNum(BusBudgetAccountingCost param);

    /**
     *  updateByPrimaryKeySelective
     *  选择性更新材料数据
     * @param param 材料数据
     * @return int 更新成功返回1 失败返回0
     * @author 徐一贺
     * @date 2020/10/9 16:39
     * @version 1.0
          */
    int updateByPrimaryKeySelective(BusMaterialDataModel param);


    /**
     *  updateBusBudgetAccountingCostFinishStatusByPrimaryKeySelective
     *  根据主键更新成本项状态
     * @param busBudgetAccountingCost 更新内容
     * @return
     * @author 徐一贺
     * @date 2020/10/10 14:22
     * @version 1.0
          */
    int updateBusBudgetAccountingCostFinishStatusByPrimaryKeySelective(BusBudgetAccountingCost busBudgetAccountingCost);



    /**
     *  getConfigParam 根据参数获取 概算预算核算基本配置参数
     * 
     * @param param 参数
     * @return com.zhongwang.business.common.JsonResult
     * @author 徐一贺
     * @date 2020/11/5 14:43
     * @version 1.0
     */
    BusBudgetAccountingBasicInfoConfigModel getConfigParam(BusBudgetAccountingBasicInfoConfigModel param);

    /**
     *  findBusGeneralHoursModelListByCondition
     *  根据条件获取、工时、辅材、重量、运费等数据。
     * @param condition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusGeneralHoursModel>
     * @author 徐一贺
     * @date 2020/11/6 8:31
     * @version 1.0
     */
    List<BusGeneralHoursModel> findBusGeneralHoursModelListByCondition(BusGeneralHoursModel condition);

    /**
     *  updateBusGeneralHoursModelByPrimaryKeySelective
     *  根据主键选择性更新常规工时数据
     * @param param 参数
     * @return int
     * @author 徐一贺
     * @date 2020/11/6 10:43
     * @version 1.0
     */
    int updateBusGeneralHoursModelByPrimaryKeySelective(BusGeneralHoursModel param);

    /**
     *  automaticCalculationCut
     *  根据忠旺机械平均日工资获取工时成本
     * @param param 参数
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/6 13:07
     * @version 1.0
     */
    BigDecimal automaticCalculationCutWorkHoursCost(BusGeneralHoursModel param);
    /**
     *  automaticCalculationCut
     *  根据忠旺机械平均日工资获取热处理工时成本
     * @param param 参数
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/6 13:07
     * @version 1.0
     */
    BigDecimal automaticCalculationCutWorkHoursCostHeatTreatment(BusGeneralHoursModel param);

    /**
     *  automaticCalculationCutMat
     *  获取辅材成本
     * @param param 参数
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/6 13:07
     * @version 1.0
     */
    BigDecimal automaticCalculationCutMat(BusGeneralHoursModel param);

    /**
     *  getCutAuxiliaryMaterialsCount
     *  获取辅材数据量
     * @param param 参数
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/11/10 9:57
     * @version 1.0
     */
    Integer getCutAuxiliaryMaterialsCount(BusGeneralHoursModel param);

    /**
     *  findBusMachiningHoursModelListByCondition
     *  根据条件获取机加明细列表
     * @param macCondition 机加条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningHoursModel>
     * @author 徐一贺
     * @date 2020/11/7 7:58
     * @version 1.0
     */
    List<BusMachiningHoursModel> findBusMachiningHoursModelListByCondition(BusMachiningHoursModel macCondition);

    /**
     *  findBusMachiningEquipmentQuotaVersionList
     *  获取定额版本号列表
     * @return java.util.List<com.zhongwang.business.gen.entity.BusMachiningEquipmentQuotaVersion>
     * @author 徐一贺
     * @date 2020/11/9 10:25
     * @version 1.0
     */
    List<BusMachiningEquipmentQuotaVersion> findBusMachiningEquipmentQuotaVersionList();

    /**
     *  getTotalPriceBusMachiningHoursModelByCondition
     *  根据条件获取总金额 条件
     * @param macCondition
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/9 10:57
     * @version 1.0
     */
    BigDecimal getTotalPriceBusMachiningHoursModelByCondition(BusMachiningHoursModel macCondition);

    /**  findBusMachiningHoursByCondition 根据条件获取机加工时列表
     * @param macCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningHoursModel>
     * @author 徐一贺
     * @date 2020/11/18 9:46
     */
    List<BusMachiningHoursModel> findBusMachiningHoursByCondition(BusMachiningHoursModel macCondition);
    /**  getBusMachiningHoursByCondition 根据条件获取总工时
     * @param macCondition
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/12/28 19:21
     */
    BigDecimal  getBusMachiningHoursByCondition(BusMachiningHoursModel macCondition);
    //    /**
//     *  getTotalHoursBusMachiningHoursModelByCondition
//     *  根据条件获取总工时 条件
//     * @param macCondition
//     * @return java.math.BigDecimal
//     * @author 徐一贺
//     * @date 2020/11/9 10:57
//     * @version 1.0
//     */
//    BigDecimal getTotalHoursBusMachiningHoursModelByCondition(BusMachiningHoursModel macCondition);

    /**
     *  AccountingInfoController
     *   根据条件获取机加明细数据
     * @param param 条件
     * @author 徐一贺
     * @date 2020/11/9 11:11
     * @version 1.0
          */
    List<BusMachiningHoursModel> findMacDetailList(BusMachiningHoursModel param);


    /**
     *  findBusMachiningHoursModelListByBatId
     *  根据batId获取核算机加数据
     * @param batId 单据表主键
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningHoursModel>
     * @author 徐一贺
     * @date 2020/11/9 12:50
     * @version 1.0
     */
    List<BusMachiningHoursModel> findBusMachiningHoursModelListByBatId(Integer batId);

    /**
     *  findBusMachiningEquipmentModelListByVersion
     *  根据版本号获取定额列表
     * @param version 版本号
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel>
     * @author 徐一贺
     * @date 2020/11/9 13:47
     * @version 1.0
     */
    List<BusMachiningEquipmentModel> findBusMachiningEquipmentModelListByVersion(String version);

    /**
     *  updateBusMachiningHoursModelByPrmaryKeySelective
     *  根据主键选择性更新机加工时信息
     * @param model 机加工时更新内容
     * @return int
     * @author 徐一贺
     * @date 2020/11/9 14:00
     * @version 1.0
     */
    int updateBusMachiningHoursModelByPrimaryKeySelective(BusMachiningHoursModel model);

    /**
     *  updateBusMachiningEquipmentModelIsDefaultByCode
     *  根据代码更新其是否默认
     * @param condition 条件
     * @return int
     * @author 徐一贺
     * @date 2020/11/9 14:52
     * @version 1.0
     */
    int updateBusMachiningEquipmentModelIsDefaultByCode(BusMachiningEquipmentModel condition);

    /**
     *  updateBusMachiningEquipmentModelIsDefaultByPrimaryKey
     *  根据主键更新IsDefault值
     * @param condition 条件
     * @return int
     * @author 徐一贺
     * @date 2020/11/9 14:57
     * @version 1.0
     */
    int updateBusMachiningEquipmentModelIsDefaultByPrimaryKey(BusMachiningEquipmentModel condition);

    /**
     *  updateBusBudgetAccountingBasicInfoConfigModelByBatIdAndCode
     *  根据代码和单据表主键更新其值
     * @param condition 条件
     * @return int
     * @author 徐一贺
     * @date 2020/11/9 15:09
     * @version 1.0
     */
    int updateBusBudgetAccountingBasicInfoConfigModelByBatIdAndCode(BusBudgetAccountingBasicInfoConfigModel condition);

    /**
     *  getBusBudgetAccountingBasicInfoConfigByBatIdAndCode
     *  根据BatId和code获取基础信息配置
     * @param condition 条件
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusBudgetAccountingBasicInfoConfigModel
     * @author 徐一贺
     * @date 2020/11/9 16:00
     * @version 1.0
     */
    BusBudgetAccountingBasicInfoConfigModel getBusBudgetAccountingBasicInfoConfigByBatIdAndCode(BusBudgetAccountingBasicInfoConfigModel condition);

    /**
     *  automaticCalculationTransportationExpenses
     *  获取运输费
     * @param param 参数
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/10 16:51
     * @version 1.0
     */
    BigDecimal automaticCalculationTransportationExpenses(BusGeneralHoursModel param);

    /**
     *  getBusBudgetAccountingTaskModelById
     *  根据主键获取单据表
     * @param batId 单据表主键
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusBudgetAccountingTaskModel
     * @author 徐一贺
     * @date 2020/11/16 13:39
     * @version 1.0
     */
    BusBudgetAccountingTaskModel getBusBudgetAccountingTaskModelById(Integer batId);

    /**
     *  getVwProjectByCode
     *  根据项目号从看板系统中获取项目系信息
     * @param proCode 项目号
     * @return com.zhongwang.business.gen.entity.VwProject
     * @author 徐一贺
     * @date 2020/11/16 13:41
     * @version 1.0
     */
    VwProject getVwProjectByCode(String proCode);

    /**
     *  updateBusBudgetAccountingCostByPrimaryKeySelective
     *  根据主键选择性更新数据
     * @param busBudgetAccountingCost 更新内容
     * @return int
     * @author 徐一贺
     * @date 2020/11/16 13:46
     * @version 1.0
     */
    int updateBusBudgetAccountingCostByPrimaryKeySelective(BusBudgetAccountingCost busBudgetAccountingCost);

    /**
     *  insertBusBudgetAccountingEstimatesData
     *  插入预算核算概算数据
     * @param accountingData 参数
     * @return int
     * @author 徐一贺
     * @date 2020/11/16 15:42
     * @version 1.0
     */
    int insertBusBudgetAccountingEstimatesData(BusBudgetAccountingEstimatesData accountingData);

    /**
     *  getBusBudgetAccountingEstimatesDataByCondition
     *  通过条件获取预算核算概算数据
     * @param accountingData 参数
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingEstimatesData
     * @author 徐一贺
     * @date 2020/11/16 15:57
     * @version 1.0
     */
    BusBudgetAccountingEstimatesData getBusBudgetAccountingEstimatesDataByCondition(BusBudgetAccountingEstimatesData accountingData);

    /**
     *  updateBusBudgetAccountingEstimatesDataByPrimaryKey
     *  根据主键更新预算核算概算数据
     * @param accountingData 参数
     * @return int
     * @author 徐一贺
     * @date 2020/11/16 16:02
     * @version 1.0
     */
    int updateBusBudgetAccountingEstimatesDataByPrimaryKey(BusBudgetAccountingEstimatesData accountingData);

    /**  GetTotalWorkHoursByParam 根据条件获取总工时
     * @param param 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/17 9:31
     */
    BigDecimal GetTotalWorkHoursByParam(BusGeneralHoursModel param);

    /**  insertBusMaterialData 插入材料数据
     * @param busMaterialData 数据
     * @return int
     * @exception
     * @author 徐一贺
     * @date 2020/11/21 15:49
     */
    int insertBusMaterialData(BusMaterialData busMaterialData);
    /**  insertBusMaterialData 插入铝材数据
     * @param busMaterialData 数据
     * @return int
     * @exception
     * @author 徐一贺
     * @date 2020/11/21 15:49
     */
    int insertBusMaterialData(AluminiumExportModel busMaterialData);

    /**  getBusDataSourceByCondition 根据条件获取数据源
     * @param condition 条件
     * @return com.zhongwang.business.gen.entity.BusDataSource
     * @exception
     * @author 徐一贺
     * @date 2020/11/21 16:05
     */
    BusDataSource getBusDataSourceByCondition(BusDataSource condition);

    /**  deleteBusMaterialDataByRawMatCondition 根据条件清该材料数据
     * @param rawMatCondition 条件
     * @return int
     * @exception
     * @author 徐一贺
     * @date 2020/11/21 16:13
     */
    int deleteBusMaterialDataByRawMatCondition(BusMaterialDataModel rawMatCondition);

    /**  findBusBudgetAccountingCostByBatId 根据单据表主键获取核算成本项
     * @param batId 单据表主键
     * @return java.util.List<com.zhongwang.business.gen.entity.BusBudgetAccountingCost>
     * @author 徐一贺
     * @date 2020/12/3 12:58
     */
    List<BusBudgetAccountingCost> findBusBudgetAccountingCostByBatId(Integer batId);

    /**  updateBusBudgetAccountingCostDataSourceByPrimaryKey 更改数据源状态
     * @param cost 成本项
     * @return java.lang.Integer
     * @exception 
     * @author 徐一贺
     * @date 2020/12/8 18:33
     */
    Integer updateBusBudgetAccountingCostDataSourceByPrimaryKey(BusBudgetAccountingCost cost);

    /**  loadMainParam 根据单据表主键加载主要参数
     * @param batId 单据表ID
     * @return java.lang.String 主要参数
     * @author 徐一贺
     * @date 2020/12/10 10:18
     */
    String loadMainParam(Integer batId);


    /**  loadNote 加载note
     * @param batId 单据表ID
     * @return java.lang.Object
     * @author 徐一贺
     * @date 2020/12/10 10:41
     */
    BusBudgetAccountingTaskModel loadNote(Integer batId);

    /**  updateBusBudgetAccountingTaskByPrimaryAndSelectiveColumn 根据主键更改note值
     * @param param 字段名和值
     * @return int
     * @author 徐一贺
     * @date 2020/12/10 13:41
     */
    int updateBusBudgetAccountingTaskByPrimaryAndSelectiveColumn(BusBudgetAccountingTaskModel param);


    /**  getBusBudgetAccountingTaskAndAppInfoByPrimaryKey 根据单据表主键获取审核者和审批者信息
     * @param batId 单据表主键
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusBudgetAccountingTaskModel
     * @author 徐一贺
     * @date 2020/12/17 14:07
     */
    BusBudgetAccountingTaskModel getBusBudgetAccountingTaskAndAppInfoByPrimaryKey(Integer batId);

    /**  updateBusMaterialDataByRawMatPrototypeDataToInvalid 根据costId把数据设置成无效
     * @param costId
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/24 20:49
     */
    Integer updateBusMaterialDataByRawMatPrototypeDataToInvalid(Integer costId);

    /**  insertBusGeneralHours 插入工时数据
     * @param cutExportModel 数据
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/26 13:47
     */
    Integer insertBusGeneralHours(CutExportModel cutExportModel);
    /**  insertBusGeneralHours 插入辅材工时数据
     * @param cutAuxExportModel 数据
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/26 13:47
     */
    Integer insertBusGeneralHours(CutAuxExportModel cutAuxExportModel);
    /**  insertBusGeneralHours 插入工时数据
     * @param rivetAndSolderExportModel 数据
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/26 13:47
     */
    Integer insertBusGeneralHours(RivetAndSolderExportModel rivetAndSolderExportModel);

    /**  insertBusGeneralHours 插如辅材数据
     * @param rivetAndSolderAuxExportModel 数据
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/26 13:47
     */
    void insertBusGeneralHours(RivetAndSolderAuxExportModel rivetAndSolderAuxExportModel);
    /**  insertBusGeneralHours 插入工时数据
     * @param busGeneralHoursModel
     * @return void
     * @author 徐一贺
     * @date 2020/12/30 14:48
     */
    void insertBusGeneralHours(BusGeneralHoursModel busGeneralHoursModel);
    Integer insertBusGeneralHours(BusGeneralHours busGeneralHours);
    /**  updateBusGeneralHoursIsEffectiveFlagByCostId 根据成本项主键和条件失效数据
     * @param model 成本项主键和条件
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/26 14:11
     */
    Integer updateBusGeneralHoursIsEffectiveFlagByCostId(BusGeneralHoursModel model);


    /**  getVwComProcessByName 根据工序名获取工序对象
     * @param process 工序名
     * @return com.zhongwang.business.gen.entity.VwComProcess
     * @author 徐一贺
     * @date 2020/12/30 9:08
     */
    VwComProcess getVwComProcessByName(String process);

    /**  getVwEquTypeByName 根据设备类型获取设备类型对象
     * @param nameType 设备类型
     * @return com.zhongwang.business.gen.entity.VwEquType
     * @author 徐一贺
     * @date 2020/12/30 9:13
     */
    VwEquType getVwEquTypeByName(String nameType);

    /**  getVwEquByName 根据设备型号获取设备型号对象
     * @param name 设备型号
     * @return com.zhongwang.business.gen.entity.VwEqu
     * @author 徐一贺
     * @date 2020/12/30 9:18
     */
    VwEqu getVwEquByName(String name);

    /**  getBusMachiningEquipmentByCondition 根据条件获取机加定额
     * @param equipmentCondition 条件
     * @return com.zhongwang.business.gen.entity.BusMachiningEquipment
     * @author 徐一贺
     * @date 2020/12/30 10:05
     */
    BusMachiningEquipment getBusMachiningEquipmentByCondition(BusMachiningEquipment equipmentCondition);

    /**  updateBusMachiningHoursToInvalid 根据成本项伍小华机加工时数据
     * @param costId
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/30 10:12
     */
    Integer updateBusMachiningHoursToInvalid(Integer costId);

    /**  insertBusMachiningHours 插入机加工时数据
     * @param busMachiningHours
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/30 10:13
     */
    Integer insertBusMachiningHours(BusMachiningHours busMachiningHours);

    /**  updateBusMaterialDataByBatIdAndIsPrototypeDataToInvalid 根据costId失效对应的所有外购件数据
     * @param costId
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/12/31 16:25
     */
    Integer updateBusMaterialDataByBatIdAndIsPrototypeDataToInvalid(Integer costId);
    /**  getBusBudgetAccountingCostByParam 根据条件获取成本项
     * @param param
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @author 徐一贺
     * @date 2021/1/6 16:56
     */
    BusBudgetAccountingCost getBusBudgetAccountingCostByParam(BusBudgetAccountingCost param);

    /**  getParentCostItemByParam 获取父级成品项
     * @param param
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @author 徐一贺
     * @date 2021/1/7 8:34
     */
    BusBudgetAccountingCost getParentCostItemByParam(BusBudgetAccountingCost param);

    /**  deleteBusBudgetAccountingCostByPrimaryKey 根据主键删除对应的成本项
     * @param id
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2021/1/7 9:49
     */
    Integer deleteBusBudgetAccountingCostByPrimaryKey(Integer id);
    /**  updateBusBudgetAccountingCostByPrimaryKey 根据逐渐更新成本项属性
     * @param currentItem
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2021/1/7 10:40
     */
    Integer updateBusBudgetAccountingCostByPrimaryKey(BusBudgetAccountingCost currentItem);
    /**
     * @methodName: getPartList
     * @description: 根据成本项总单和专业获取部分列表
     * @param: param
     * @return： com.zhongwang.business.common.JsonResult
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/27 10:32
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<String> findPartListByBatIdAndMajor(BusBudgetAccountingCost param);

    /**
     * @methodName: getBusBudgetAccountingCostByCondition
     * @description: 根据条件获取成本项
     * @param: getBusBudgetAccountingCostCondition
     * @return： com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/27 13:21
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    BusBudgetAccountingCost getBusBudgetAccountingCostByCondition(BusBudgetAccountingCost getBusBudgetAccountingCostCondition);

    /**
     * @methodName: insertWeightImport
     * @description: 插入重量数据
     * @param: persistenceData
     * @return： void
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/27 13:26
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer insertWeightImport(DesignWeightModel persistenceData);
    /**
     * @methodName: insertLaborTimeImport
     * @description: 插入工时数据
     * @param: persistenceData
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 7:51
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer insertLaborTimeImport(LaborTimeModel persistenceData);

    /**
     * @methodName: getImportWeightExistDataByCondition
     * @description: 根据条件获取导入的相同数据
     * @param: persistenceData
     * @return： com.zhongwang.business.module.estimateBudgetAccountingManage.model.excelImport.DesignWeightModel
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/27 15:01
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    DesignWeightModel getImportWeightExistDataByCondition(DesignWeightModel persistenceData);

    /**
     * @methodName: getImportLaborTimeExistDataByCondition
     * @description: 根据条件获取工时的数据
     * @param: persistenceData
     * @return： com.zhongwang.business.module.estimateBudgetAccountingManage.model.excelImport.LaborTimeModel
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 7:43
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<LaborTimeModel> findImportLaborTimeExistDataByCondition(LaborTimeModel persistenceData);
    /**
     * @methodName: deleteDesignWeightModelByPrimary
     * @description: 根据主键删除设计重量信息
     * @param: id
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/27 15:05
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer deleteDesignWeightModelByPrimary(Integer id);

    /**
     * @methodName: deleteLaborTimeModelByPrimary
     * @description: 根据条件删除对应的
     * @param: existDatas
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 7:48
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer deleteLaborTimeModelByCostId(Integer costId);

    /**
     * @methodName: findBusGeneralHoursByParam
     * @description: 根据条件获取人工工时列表数据
     * @param: param
     * @return： java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.excelImport.DesignWeightModel>
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 14:23
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<BusGeneralHours> findBusGeneralHoursByParam(BusGeneralHours param);

    /**
     * @methodName: loadBusMachiningHoursList
     * @description: 核算导入机加工时加载列表
     * @param: param
     * @return： java.util.List<com.zhongwang.business.gen.entity.BusGeneralHours>
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 14:42
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<BusMachiningHours> loadBusMachiningHoursList(BusMachiningHours param);

    /**
     * @methodName: getBusGeneralHoursByPrimary
     * @description: 根据主键获取工时数据
     * @param: id
     * @return： com.zhongwang.business.gen.entity.BusGeneralHours
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 15:21
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    BusGeneralHours getBusGeneralHoursByPrimary(Integer id);

    /**
     * @methodName: deleteBusGeneralHoursByPrimary
     * @description: 根据主键删除工时表数据
     * @param: id
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 15:25
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer deleteBusGeneralHoursByPrimary(Integer id);

    /**
     * @methodName: findBusMaterialDataByParam
     * @description: 根据参数查询外购件列表
     * @param: param
     * @return： java.util.List<com.zhongwang.business.gen.entity.BusMaterialData>
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 16:18
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<BusMaterialData> findBusMaterialDataByParam(BusMaterialData param);

    /**
     * @methodName: getBusMaterialDataByPrimary
     * @description: 根据主键获取材料数据
     * @param: primaryKey
     * @return： com.zhongwang.business.gen.entity.BusMaterialData
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 18:30
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    BusMaterialData getBusMaterialDataByPrimary(Integer primaryKey);

    /**
     * @methodName: deleteBusMaterialDataByPrimary
     * @description: 根据主键删除材料信息
     * @param: primaryKey
     * @return： void
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/29 18:31
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer deleteBusMaterialDataByPrimary(Integer primaryKey);


    /**
     * @methodName: getBusMachiningHoursByPrimary
     * @description: 根据主键获取机加工时
     * @param: id
     * @return： com.zhongwang.business.gen.entity.BusMachiningHours
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 15:30
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    BusMachiningHours getBusMachiningHoursByPrimary(Integer id);

    /**
     * @methodName: deleteBusMachiningHoursByPrimary
     * @description: 根据主键删除了机加工时
     * @param: id
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 15:31
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer deleteBusMachiningHoursByPrimary(Integer id);

    /**
     * @methodName: getBusMaterialDataByConstId
     * @description: 根据costId获取对应的数据量
     * @param: costId
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 16:23
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer getBusMaterialDataByConstId(Integer costId);

    /**
     * @methodName: getBusGeneralHoursCountByConstId
     * @description: 根据ConstId取对应的数据量
     * @param: costId
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 16:27
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer getBusGeneralHoursCountByConstId(Integer costId);

    /**
     * @methodName: getBusMachiningHoursCountByConstId
     * @description: 根据ConstId取对应的数据量
     * @param: costId
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 16:29
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer getBusMachiningHoursCountByConstId(Integer costId);

    /**
     * @methodName: getTotalPriceHaveTaxFromBusMaterialDataByCostId
     * @description: 根据成本项主键获取对应材料表的总价
     * @param: costId
     * @return： java.math.BigDecimal
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 18:10
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    BigDecimal getTotalPriceHaveTaxFromBusMaterialDataByCostId(Integer costId);
    /**
     * @methodName: updateBusBudgetAccountingCostUnforeseenPriceByPrimaryKey
     * @description: 根据主键更新不可预见费用
     * @param: cost
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 19:34
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer updateBusBudgetAccountingCostUnforeseenPriceByPrimaryKey(BusBudgetAccountingCost cost);
    /**
     * @methodName: updateBusBudgetAccountingCostTotalPriceByPrimarkKey
     * @description: 根据主键更新成本项总价
     * @param: busBudgetAccountingCost
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/3/30 19:56
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer updateBusBudgetAccountingCostTotalPriceByPrimarkKey(BusBudgetAccountingCost busBudgetAccountingCost);

    /**
     * @methodName: createTempTable
     * @description: 创建临时表
     * @param: param
     * @return： void
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/7 15:06
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer createTempTable(BusBudgetAccountingTaskModel param);

    /**
     * @methodName: getTempTableDataCount
     * @description: 获取数据总数
     * @param: param
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/7 15:36
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer getTempTableDataCount(BusBudgetAccountingTaskModel param);

    /**
     * @methodName: selectTempTableByParam
     * @description: 查询
     * @param: param
     * @return： java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.excelExport.CostSheet>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/7 15:41
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<CostSheet> selectTempTableByParam(BusBudgetAccountingTaskModel param);
    /**
     * @methodName: dropTempTable
     * @description: 删除临时表
     * @param: tempTableName
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/7 15:42
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer dropTempTable(String tempTableName);

    /**
     * @methodName: findEquipmentModelsByBatId
     * @description: 根据机单据表主键获取机加定额的型号列表
     * @param: batId
     * @return： java.util.List<java.lang.String>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/7 20:03
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<String> findEquipmentModelsByBatId(Integer batId);
}
